Print job assignment method allowing user-prioritization

ABSTRACT

A method implemented in a print job management apparatus for processing print jobs in a multiple-printer print shop environment is described. Each print job specifies job ticket parameters representing printing requirements. Each received job is processed by comparing the printing requirements of the job with capabilities of the printers. If a printer cannot satisfy all printing requirements of the job, it is eliminated as a candidate printer. Then, from all printers that can satisfy all printing requirements of the job, one printer is selected based on a pre-defined priority preference and the job is submitted to the selected printer. The printer priority preference is created by the operator based on cost and other factors. The operator can also select an alternative execution mode where, among all printers that can satisfy all requirements of the job, the one with minimum wait time is selected.

This application cross-references and incorporates by reference in itsentirety U.S. patent application Ser. No. 11/395,520, filed on Mar. 31,2006, entitled “PRINT JOB ANALYZING METHOD AND APPARATUS” by Geoff W.HARMON, Toshiro FUJIMORI, Rakesh PANDIT, and Shigenori MATSUBARA.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to print job processing method and apparatus, andmore particularly, to print job processing method and apparatus for aprint shop employing multiple printers.

2. Description of Related Art

In an environment that processes a large number of print jobs withmultiple printers, there has been a need to manage print jobsefficiently in an organized fashion. Examples of such an environment areprofessional print shops and print/copy departments at largeorganizations, where a variety of print requests, such as large-volumeduplication and large document printing, needs to be processed andcompleted by utilizing multiple printers within a short turn-aroundtime. These environments are collectively referred to as “print shops”in this application. Typically, each printing job specifies a sourcefile that electrically contains a document to be printed, the size,color and the type of the paper on which the document should be printed,the printing resolution, duplex or single-side printing, and certainfinishing conditions, such as book, staple, collate printing, etc.,depending on a print job requester's needs. In order to process a largevolume of print jobs that each differ in terms of these job parameters,a print shop utilizes multiple commercial grade printers. Typically, oneor more black & white (B&W) printers are in operation to process B&Wprinting. Color printers are also installed to handle color printing.Each of these printers, however, has limitations on available printersettings, such as the paper size, the paper type, resolution settings,etc. When a large volume of printing jobs is to be handled with multipleB&W and color printers, it is a daunting task to assign each printingjob to an appropriate printer.

SUMMARY OF THE INVENTION

Accordingly, the present invention is directed to a print job processingmethod and apparatus that substantially obviates one or more of theproblems due to limitations and disadvantages of the related art.

An object of the present invention is to provide an improved print jobprocessing method and apparatus.

Additional or separate features and advantages of the invention will beset forth in the descriptions that follow and in part will be apparentfrom the description, or may be learned by practice of the invention.The objectives and other advantages of the invention will be realizedand attained by the structure particularly pointed out in the writtendescription and claims thereof as well as the appended drawings.

To achieve these and other advantages and in accordance with the purposeof the present invention, as embodied and broadly described, in oneaspect, the present invention provides a method for processing a printjob implemented in a print job management apparatus for managing aplurality of printing devices, which includes: (a) receiving a printjob, the print job specifying job ticket parameters representingprinting requirements; (b) for each of the plurality of printingdevices, determining whether the printing device satisfies all printingrequirements of the print job; (c) from all printing devices that aredetermined to satisfy all printing requirements of the print job,selecting a printing device based on a priority preference of printingdevices pre-defined by an operator; and (d) submitting the print job tothe selected printing device for printing.

In another aspect, the present invention provides a computer programproduct including a computer usable medium having a computer readablecode embodied therein for controlling a data processing apparatusconnected to a plurality of printing devices, the computer readableprogram code being configured to cause the data processing apparatus toexecute the above process for processing a print job.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory, andare intended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically illustrates a print management system havingmultiple printers and a print job management server in which embodimentsof the present invention can be implemented.

FIGS. 2A and 2B illustrate a process for automatically assigning printjobs to a printing device according to an embodiment of the presentinvention.

FIG. 3 illustrates a process for automatically assigning print jobs to aprinting device according to an alternative embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of the present invention provide a method for automaticallyassigning print jobs to printers in a print shop environment. Analgorithm is used to examine the print job requirements and thecapabilities of the printers, and to determine how to assigned the printjob to printers. Using this method, a large number of print jobs can bespeedily and efficiently processed.

FIG. 1 illustrates an example of a print shop having multiple printers,where embodiments of the present invention may be implemented. In theprint shop system, client computers 1 and 2 are connected to a server 4via a local area network (LAN). Scanner 3 is also connected to server 4via the LAN. In this example, B&W printers 5, 6, and 7 and colorprinters 8 and 9 are connected to the server through the LAN. In thisexample, printers 5-9 are commercial standard high-end printers that canhandle high speed, high quality printing. Each of the printers 5-9 hasmultiple paper trays to store paper of various sizes, color, and types.Further, some of the printers 5-9 are equipped with a sophisticatedoutput sorting mechanism with multiple output trays to perform collateprinting or other print finishing functions. Each printer has one ormore display monitors to display the status of the printing and variouswarning and instruction messages to a user. Each printer is equippedwith its own central processing unit (CPU) and appropriatehardware/software to control its own printing operations, andcommunicates with server 4 via a LAN. Some of these printers may also bemultifunction printers that can perform copying and scanning ofdocuments. Appropriate server software is installed in server 4 toperform various standard network administrative functions.

According to embodiments of the present invention, in addition to theserver administrative software, print job management software isinstalled on server 4 for managing a large number of print jobs thatcome into the print shop. The print job management software may bestored in either of a read only memory (ROM) or a hard disk drive (HDD),which can be accessed by the CPU of the server 4. Once a print shopoperator calls the print job management software, server 4 reads out theprint job management software from the ROM or HDD to a random accessmemory (RAM) of the server to carry out various functions of thesoftware, including management of print jobs. The print job managementsoftware preferably is designed to run on Windows OS, Macintosh OS, orUnix X Windows or other computer operating systems implementing a GUI(graphic user interface), such as a touchscreen and/or a mouse and akeyboard, coupled with a display monitor. Server 4 (or any suitable dataprocessing apparatus) running print job management software ofembodiments of the present invention is hereinafter referred to as“print job management server.” In this application, the terms “print jobmanagement server” and “print job management apparatus” broadly refer toany data processing apparatus that can implement various features ofembodiments of the present invention described below with appropriatehardware/software.

A print job is a print request specifying various desired options orrequirements together with one or more documents to be printed. Forexample, a customer may bring a floppy diskette containing a file in thePDF format for printing with a particular finishing option. The printshop operator asks the customer what kind of print jobs is desired tofigure out print job parameters. Alternatively, the customer may beasked to fill out a questionnaire sheet to describe what print optionshe/she desires. For example, the customer may desire that the documentbe printed on 24 lb 25% cotton letter size paper in full color in thedouble-sided printing mode in the amount of 100 copies. The print shopoperator then records these job parameter values along with customerinformation as a file and stores the file and the source PDF file ontothe hard disk drive or other secured storage device so that the printjob parameters are associated with the file.

Print jobs also may be generated by a customer's requests to copy adocument. When a customer brings a document for copying, the shopoperator scans the document using scanner 3 (which may be a color and/orB&W scanner) and converts the document into a digital file andthereafter creates a data file associated with the scanned sourcedocument in a manner similar to above.

Theses data files representing print jobs and associated files areforwarded to server 4. This way, numerous print jobs are generated andcollected by server 4 on which print job management software is running.The print job management server 4 running print job management softwarereceives the print job files, analyzes and processes the print jobs, andsubmits them to a printing device for printing and (if required)finishing.

The printing devices to which the server 4 assigns print jobs includeprinters and clusters. A printer is an actual physical printer (whichmay include finishing functions such as stapling) that is connected tothe server 4. A cluster is a software-defined virtual printing devicedesigned to perform a certain class of print jobs more efficiently andaccurately. It is a combination of two or more printers with specifiedrules or algorithm. When a print job is assigned to a cluster, the printjob is split into two or more jobs by a preset or user-defined rule oralgorithm, and the divided jobs are processed by the respective printersand/or finishing devices designated by the cluster. For example, supposethat a print job containing 10 color pages and 20 B&W pages is submittedto a cluster that combines Color Printer 1 and BW Printer 1 with a rulerequiring all color pages to be printed by Color Printer 1 and all B&Wpages to be printed by B&W Printer 1. Then, the print job is dividedinto sub-job 1 containing all color pages and sub-job 2 containing theremaining B&W pages. Thereafter, sub-job 1 is sent to the Color Printer1 and sub-job 2 is sent to B&W Printer 2 for respective printingoperations. Another example of a cluster, sometimes referred to as aquantity-type cluster, is one that includes a number of B&W printershaving similar capabilities that are used to print large volume printjobs. The printers and printers within a cluster may also include onlinefinishing devices, i.e., finishing device (sorters, staplers, etc.) thatare mechanically and electrically associated with a printer.

In embodiments of the present invention, print jobs are organized byusing database entries, called “job tickets.” A job ticket specifiesvalues of various print job parameters, and associates itself to thesource file(s). In one particular example, a job ticket may include ajob ticket number, ticket name as well as the values of the followinggroups of various other job parameters: job information settings, basicsettings, layout settings, cover sheet, finishing settings, inter-sheetsettings, tab-paper settings, image quality settings, and customerinformation. Job information settings include job name, submit time,completed time, due date, type (print or copy), priority, the identityof the person who created the job ticket, job location, etc. Jobinformation settings further include the directory pass at which thefile containing the document to be printed is located in a local ornetworked hard drive, the number of B&W pages, the number of colorpages, and special instructions. Basic settings include the number ofcopies to be made, the orientation of paper (portrait or landscape),information on collate printing, information on offset printing, theoriginal paper size, the output paper size, the paper type, and papersource information, such as tray numbers. Layout settings includesettings concerning print layout. Cover sheet includes settings on coversheets to be produced or prepared. Finishing settings specify paperfinishing settings, including the paper binding options, such as stitch,staple, and punch.

Based on instructions and information received from a customer, a printshop operator may manually enter the values of these job parametersusing a job ticket editor, which is a graphic user interface (GUI). Inaddition, the server 4 may be configured to access and analyze thesource file to determine the values of some of the job parameterdirectly from the source file. Then the server enters these values inthe corresponding job parameter entries in the corresponding job ticketwithout requiring a user to manually enter them. This will helpeliminate clerical errors and further facilitate the operation of theprint shop.

In this application, the term “value” means, when referred to withrespect to variables or parameters, any numerical quantity, characters,and other types of entries that can specify variables or parameters, andincluding, but not limited to, a specific setting of any of the jobparameters appeared herein.

Each day, a print shop receives a large number of new print jobsspecifying a variety of printing requirements. As arrived, these printjobs are not organized, yet they must be processed promptly andaccurately. The print job management server analyzes incoming print jobsand automatically assigns them to the appropriate printing device forprinting. FIGS. 2A and 2B illustrate a process executed by the print jobmanagement software running on the server for analyzing job tickerparameters to determine which printing device the job will be assignedto.

The first step in the automatic print job assignment process is jobgrouping, i.e., assigning print jobs to pre-defined job groups (stepS21). A job group is a holding folder that has one or more job ticketparameters associated with it. The purpose of a group is to collectmultiple print jobs that share the same pre-defined characteristics andthen batch process them at one time, when there are enough jobs. Thisallows for more efficient use of a printer. Job groups are defined bythe operator prior to starting the assignment process. In step S21, theserver compares the job ticket parameters of a print job to thespecified parameters of all pre-defined job groups. If a match is found,the job is assigned to that group (step S31). A match means that theprint job has all of the requirements of a group, even though the jobmay have other requirements not specified for the group. Jobs assignedto a group can be processed manually, i.e., the operator can manuallyassign all jobs in the group to a particular printer.

If a job is not assigned to any group because it does not match thegroup criteria, the server next examines the color requirements (colorintent) of the job, and compares them to the color capabilities of theprinters and clusters managed by the server (step S22). Printers orclusters that do not match the color requirements of the print job areeliminated as possible candidate printing devices for the print job.Then, the server considers the paper requirements of the print job suchas paper size, paper weight, and paper type (step S23). If any of theremaining printers or clusters does not support these paper settings,the printer or cluster is eliminated as a candidate device. Next, theserver checks the layout support of the remaining printers and clusters(step S24). Examples of layout options include: single-sided,double-sided, adhesive bind and booklet. Printers or clusters thatcannot process the specified layout setting of the print job areeliminated as candidate devices.

The server next conducts a job ticket constraint check to determine ifthe job ticket itself contains any settings that create any internalconflicts (i.e. inconsistent job requirements) (step S25). For example,if staple and Z-fold are both specified for the job, it is considered aninternal conflict. If an internal conflict is found, the job cannot beassigned to any printing device, and the server notifies the operator ofsuch conflicts. This situation requires the operator to modify the jobticket to resolve the internal conflict. Thus, the server displays awarning message and stops processing that print job (step S32).

The server also conducts a printer constraint check for each printer tosee if the printing device supports all the remaining job ticketsettings (step S26). If a printing device cannot support all job ticketsettings, the printing device is eliminated as a candidate printingdevice.

Next, the server checks the periodic maintenance count of each remainingprinter and printers assigned to clusters, and compares the remainingperiodic maintenance count to the copy page count of the print job (stepS27). The copy page count is the total number of pages in the print jobto be printed. In the case of a cluster that includes two or moreprinters which will print different parts of the print job, for example,a B&W printer to print the B&W pages and a color printer to print thecolor pages of the print job, the copy page count include the totalnumber of pages for each respective printer, e.g., the number of totalB&W pages and the number of total color pages, respectively. Theperiodic maintenance count (PM) is a number that indicates the number ofpages that has been printed by a printer during the current maintenanceperiod. Each printer is scheduled to print a certain number of pagesbefore the next periodic maintenance is conducted. Thus, the remainingPM count indicates the number of pages a printer can print beforemaintenance. If the copy page count of the print job exceeds theremaining PM count of a printer, that printer and the cluster that theprinter belongs to are eliminated as candidate printing devices.

The server then considers each of the remaining printers and printersassigned to clusters, and checks the paper size and type of the papercurrently loaded in the printer as well as consumable levels (step S28).While step S23 checks for printer's capability to support the requiredpaper size and type, step S28 checks whether the paper size and typerequired by the print jot are actually loaded in the printer.Consumables include, for example, toner, staples, etc. If the correctpaper is not currently loaded in a printer or if consumable levels areinsufficient, the server eliminates the printer and the cluster itbelongs to. The server may also generate a warning message to indicatethis fact. The purpose of the warning message is that, in the event theautomatic print job assignment process fails to assign the print job toany printing device (i.e. no printing device satisfies all requirementsof the print job), the operator may nevertheless manually assign theprint job to the printing device despite the warning message, or he maycorrect the problem (e.g. load the correct paper) and then manuallyassign the print job to that printing device.

In steps S22, S23, S24 and S26, the capabilities of a cluster depend onthe capabilities of the individual printers in the cluster and thealgorithm that define how they share tasks. For example, for a clusterthat includes a B&W printer and a color printer, with an algorithmspecifying how the color and B&W pages of a print job is to be printedby the two printers, the cluster is considered to have a color printingcapability for purpose of step S22. In another example, a quantity-typecluster includes a number of B&W printers with an algorithm specifyinghow multiple copies of a print job is to be printed by the number ofprinters. If the print job requires hole-punching but not all of theprinters in the cluster have hole-punching capabilities, then thecluster cannot support the hole-punching requirement of the job and willbe eliminated in step S26.

After steps S21 through S28, a number of printing devices may remain ascandidate printing devices, all of which will be able to satisfy allprinting requirements of the print job. Among the remaining candidateprinting devices, the server selects one printing device based on apre-defined printer priority preference, and submits the print job tothe selected printing device (step S29). Thus, by using the abovedescribed method, the server automatically assigns each print job to aprinting device, and automatically submits the job to that printingdevice for printing.

The printer priority preference is a priority list previously created bythe operator. It specifies an order in which printing devices are to beselected by the server if multiple printers can handle the print job.One reason for using such a pre-defined printer priority preference instep S29 is that while two or more printers are capable of handling theprint job, there may be other factors that cause the print shop to favorone printer over another. In an illustrative example, the print shop hastwo Model 1 printers and a Model 2 printer, all black and whiteprinters. The cost of operation of these two models of printers is notidentical: Model 2 is more expensive to print on. Additionally, the twoModel 1 printers have different PM servicing agreements or PM counts,making it advisable for the print shop operator to favor one over theother. It is therefore advantageous for to allow the operator to createa printer priority preference which reflects the print shop'spreferences of printer use.

The printer priority preference is created prior to the server startingthe process of assigning jobs to printing devices. The server managementsoftware may provide a GUI for the operator to edit an ordered list ofprinters as the printer priority preference. In an illustrative example,the operator creates a list of printers as the printer prioritypreference: Printer A in the first position, Printer B in the secondposition, and Printer C in the third position. When the server executesthe print job assignment process, steps S21 through S28 result inPrinter B and Printer C both being candidates for processing the job. Instep S29, the server selects Printer B to assign the print job to, sinceit is in a higher position than Printer C in the pre-defined printerpriority preference.

In an alternative embodiment, the operator can choose to execute theprint job assignment process in one of two alternative selection modes:a printer priority preference mode or a minimum wait time mode. StepsS21 to S28 shown in FIGS. 2A and 2B are common steps for both modes.After performing steps S21 through S28, two or more printing devices maybe remaining as candidate printing devices. Then, as shown in FIG. 3,the server determines the selection mode (step S33). If the process isrunning in the printer priority preference mode (“Y” in step S33), theserver selects a printing device based on the pre-defined printerpriority preference, and submits the print job to the selected printingdevice (step S29A). Step S29A is the same as step S29 in FIG. 2B. If theprocess is running in the minimum wait time mode (“N” in step S33), theserver selects, from the remaining candidate printing devices, theprinting device that has the lowest wait time, and submits the print jobto the selected printing device (step S29B). This can be done byexamining the “time remaining” count of each printer. If two or moreprinters have the same wait time, the server will select one of thembased on a default order.

During execution of the print job assignment process shown in FIGS. 2A,2B and 3, the progress of process may be displayed on a GUI of the printjob management software. For example, the GUI may show a list of allavailable printers and clusters, and as a printer or cluster iseliminated in one of the steps S21 through S29, the effect is indicatedon the GUI, for example, by graying out the eliminated printing devicein the list.

While the embodiments have been described as being applied in a printshop environment, the invention is not limited to any physical settingof a shop or network, and can be applied to a print shop system having adistributed setting where printers at different locations are connectedto a server. In particular, it should be apparent that one or more ofthe components of the print shop system can communicate with the rest ofthe system via virtual private network (VPN) or similar means throughthe Internet. Moreover, referring to FIG. 1, although the server 4 ofthe above examples functions as the print job management server as wellas the network server, a separate stand-alone computer may be providedto run the print job management software. In the alternative, whenproperly configured, one of the client computers 1 and 2 or thecomputers attached to one of the printers 5-9 (if such a printer existsamong them) may be used to assume the role of the print job managementserver. Further, although a Windows based server computer withappropriate software has been described above as an example, a printmanagement system of the present invention can be implemented in aproprietary hardware system that is specifically designed to perform theabove-described various functionalities of the print management system.

It will be apparent to those skilled in the art that variousmodification and variations can be made in the print job assignmentmethod and apparatus of the present invention without departing from thespirit or scope of the invention. Thus, it is intended that the presentinvention cover modifications and variations that come within the scopeof the appended claims and their equivalents.

1. A method for processing a print job implemented in a print jobmanagement apparatus for managing a plurality of printing devices, themethod comprising: (a) receiving a print job, the print job specifyingjob ticket parameters representing printing requirements; (b)determining whether the job ticket parameters match settings of each ofone or more pre-defined groups, wherein each group defines a printingdevice to print jobs assigned to that group; (c) if the job ticketparameters match the settings of a pre-defined group, assigning theprint job to the matching group; (d1) for each of the plurality ofprinting devices, determining whether the printing device satisfies allprinting requirements of the print job; (d2) from all printing devicesthat are determined to satisfy all printing requirements of the printjob, selecting a printing device based on a priority preference ofprinting devices pre-defined by an operator; and (d3) submitting theprint job to the selected printing device for printing; wherein steps(d1), (d2) and (d3) are performed if the job ticket parameters do notmatch the setting of any pre-defined group.
 2. The method of claim 1,wherein the printing requirements include color requirements, paperrequirements, and layout requirements, and wherein step (d1) comprises:(d1-1) comparing the color requirements of the print job to colorcapabilities of the printing device; (d1-2) comparing the paperrequirements of the print job to paper capabilities of the printingdevice; and (d1-3) comparing the layout requirements of the print job tolayout capabilities of the printing device.
 3. The method of claim 2,wherein step (d1) further comprises: (d1-4) comparing a copy page countof the print job with a remaining periodic maintenance count for theprinting device.
 4. The method of claim 3, wherein step (d1) furthercomprises: (d1-5) determining whether paper having correct paper sizeand type is currently loaded in the printing device; and (d1-6)determining if the printing device has sufficient levels of consumables.5. The method of claim 1, further comprising: (e) before step (d2),conducting a job ticket constraint check to determine if the job ticketparameters create any internal conflict; and (f) if the job ticketparameters create any internal conflict, displaying a warning message;wherein steps (d2) and (d3) are performed only if the job ticketparameters create no internal conflict.
 6. The method of claim 1,further comprising: (g) determining a selection mode previouslyspecified by an operator; and (h) if the selection mode is a first mode,selecting, from all printing devices that are determined in step (d1) tosatisfy all printing requirements of the print job, a printing devicethat has a lowest wait time, wherein step (d3) is performed if theselection mode is a second mode.
 7. A computer program productcomprising a non-transitory computer usable medium having a computerreadable code embodied therein for controlling a data processingapparatus for managing a plurality of printing devices, the computerreadable program code being configured to cause the data processingapparatus to execute a process for processing a print job, the processcomprising: (a) receiving a print job, the print job specifying jobticket parameters representing printing requirements; (b) determiningwhether the job ticket parameters match settings of each of one or morepre-defined groups, wherein each group defines a printing device toprint jobs assigned to that group; (c) if the job ticket parametersmatch the settings of a pre-defined group, assigning the print job tothe matching group; (d1) for each of the plurality of printing devices,determining whether the printing device satisfies all printingrequirements of the print job; (d2) from all printing devices that aredetermined to satisfy all printing requirements of the print job,selecting a printing device based on a priority preference of printingdevices pre-defined by an operator; and (d3) submitting the print job tothe selected printing device for printing; wherein steps (d1), (d2) and(d3) are performed if the job ticket parameters do not match the settingof any pre-defined group.
 8. The computer program product of claim 7,wherein the printing requirements include color requirements, paperrequirements, and layout requirements, and wherein step (d1) comprises:(d1-1) comparing the color requirements of the print job to colorcapabilities of the printing device; (d1-2) comparing the paperrequirements of the print job to paper capabilities of the printingdevice; and (d1-3) comparing the layout requirements of the print job tolayout capabilities of the printing device.
 9. The computer programproduct of claim 8, wherein step (d1) further comprises: (d1-4)comparing a copy page count of the print job with a remaining periodicmaintenance count for the printing device.
 10. The computer programproduct of claim 9, wherein step (d1) further comprises: (d1-5)determining whether paper having correct paper size and type iscurrently loaded in the printing device; and (d1-6) determining if theprinting device has sufficient levels of consumables.
 11. The computerprogram product of claim 7, wherein the process further comprises: (e)before step (d2), conducting a job ticket constraint check to determineif the job ticket parameters create any internal conflict; and (f) ifthe job ticket parameters create any internal conflict, displaying awarning message; wherein steps (d2) and (d3) are performed only if thejob ticket parameters create no internal conflict.
 12. The computerprogram product of claim 7, wherein the process further comprises: (g)determining a selection mode previously specified by an operator; and(h) if the selection mode is a first mode, selecting, from all printingdevices that are determined in step (d1) to satisfy all printingrequirements of the print job, a printing device that has a lowest waittime, wherein step (d3) is performed if the selection mode is a secondmode.
 13. A method for processing a print job implemented in a print jobmanagement apparatus for managing a plurality of printing devices, themethod comprising: (a) receiving a print job, the print job specifyingjob ticket parameters representing printing requirements; (b)determining whether the print job match criteria of each of one or morepre-defined groups, wherein each group defines a printing device toprint jobs assigned to that group; (c) if the print job match thecriteria of a pre-defined group, assigning the print job to the matchinggroup; (d) if the print job does not match the criteria of anypre-defined group, (d1) for each of the plurality of printing devices,determining whether the printing device satisfies all printingrequirements of the print job; (d2) from all printing devices that aredetermined to satisfy all printing requirements of the print job,selecting a printing device based on a priority preference of printingdevices pre-defined by an operator.
 14. The method of claim 13, furthercomprising: (d3) submitting the print job to the selected printingdevice for printing.
 15. The method of claim 13, wherein the printingrequirements include color requirements, paper requirements, and layoutrequirements, and wherein step (d1) comprises: (d1-1) comparing thecolor requirements of the print job to color capabilities of theprinting device; (d1-2) comparing the paper requirements of the printjob to paper capabilities of the printing device; and (d1-3) comparingthe layout requirements of the print job to layout capabilities of theprinting device.
 16. The method of claim 15, wherein step (d1) furthercomprises: (d1-4) comparing a copy page count of the print job with aremaining periodic maintenance count for the printing device.
 17. Themethod of claim 16, wherein step (d1) further comprises: (d1-5)determining whether paper having correct paper size and type iscurrently loaded in the printing device; and (d1-6) determining if theprinting device has sufficient levels of consumables.
 18. The method ofclaim 14, further comprising: (e) before step (d2), conducting a printconstraint check to determine if the job ticket parameters create anyinternal conflict; and (f) if the job ticket parameters create anyinternal conflict, displaying a warning message; wherein steps (d2) and(d3) are performed only if the job ticket parameters create no internalconflict.
 19. The method of claim 14, further comprising: (g)determining a selection mode previously specified by an operator; and(h) if the selection mode is a first mode, selecting, from all printingdevices that are determined in step (d1) to satisfy all printingrequirements of the print job, a printing device that has a lowest waittime, wherein step (d3) is performed if the selection mode is a secondmode.
 20. A computer program product comprising a non-transitorycomputer usable medium having a computer readable code embodied thereinfor controlling a data processing apparatus for managing a plurality ofprinting devices, the computer readable program code being configured tocause the data processing apparatus to execute a process for processinga print job, the process comprising: (a) receiving a print job, theprint job specifying job ticket parameters representing printingrequirements; (b) determining whether the job ticket parameters matchsettings of each of one or more pre-defined groups, wherein each groupdefines a printing device to print jobs assigned to that group; (c) ifthe job ticket parameters match the settings of a pre-defined group,assigning the print job to the matching group; (d) if the job ticketparameters do not match the setting of any pre-defined group, (d1) foreach of the plurality of printing devices, determining whether theprinting device satisfies all printing requirements of the print job;(d2) from all printing devices that are determined to satisfy allprinting requirements of the print job, selecting a printing devicebased on a priority preference of printing devices pre-defined by anoperator.
 21. The computer program product of claim 20, furthercomprising: (d3) submitting the print job to the selected printingdevice for printing.
 22. The computer program product of claim 20,wherein the printing requirements include color requirements, paperrequirements, and layout requirements, and wherein step (d1) comprises:(d1-1) comparing the color requirements of the print job to colorcapabilities of the printing device; (d1-2) comparing the paperrequirements of the print job to paper capabilities of the printingdevice; and (d1-3) comparing the layout requirements of the print job tolayout capabilities of the printing device.
 23. The computer programproduct of claim 22, wherein step (d1) further comprises: (d1-4)comparing a copy page count of the print job with a remaining periodicmaintenance count for the printing device.
 24. The computer programproduct of claim 23, wherein step (d1) further comprises: (d1-5)determining whether paper having correct paper size and type iscurrently loaded in the printing device; and (d1-6) determining if theprinting device has sufficient levels of consumables.
 25. The computerprogram product of claim 21, wherein the process further comprises: (e)before step (d2), conducting a job ticket constraint check to determineif the job ticket parameters create any internal conflict; and (f) ifthe job ticket parameters create any internal conflict, displaying awarning message; wherein steps (d2) and (d3) are performed only if thejob ticket parameters create no internal conflict.
 26. The computerprogram product of claim 21, wherein the process further comprises: (g)determining a selection mode previously specified by an operator; and(h) if the selection mode is a first mode, selecting, from all printingdevices that are determined in step (d1) to satisfy all printingrequirements of the print job, a printing device that has a lowest waittime, wherein step (d3) is performed if the selection mode is a secondmode.